package ui.juego.expedientes

import dominio.datos.Hobbie
import dominio.individuos.Villano
import org.uqbar.commons.model.ObservableUtils
import org.uqbar.commons.utils.Observable
import org.uqbar.commons.model.UserException

@Observable
class EditarHobbieVillano {
	
	@Property Villano villano
	@Property Hobbie hobbieSeleccionado
	
	@Property String inputDato 
		
	
	new(Villano villano) {
		this.villano = villano
	}
	
	def getHobbies(){
		villano.hobbies
	}

	def eliminarHobbieSeleccionado() {
		if(hobbieSeleccionado != null)
			hobbies.remove(hobbieSeleccionado)
		else throw new UserException("No hay un hobbit seleccionado!")
		ObservableUtils.firePropertyChanged(this,"hobbies", hobbies)
		ObservableUtils.firePropertyChanged(villano,"hobbies", villano.hobbies)
	}
	
	def agregarHobbie(Hobbie hobbie) {
		hobbie.dato = hobbie.dato.trim
		if(!hobbie.dato.nullOrEmpty) {
			hobbies += hobbie
			inputDato = null
		}
		else throw new UserException("No es un dato valido!")
		ObservableUtils.firePropertyChanged(this, "hobbies", hobbies)
		ObservableUtils.firePropertyChanged(villano, "hobbies", villano.hobbies)
	}
	
}